#ifndef SUPERFICIE_BARRIDO_H_
#define SUPERFICIE_BARRIDO_H_

#include "coord.h"
#include "superficie.h"
#include "curva.h"

class SuperficieBarrido : public Superficie {
   private:
      const Curva &perfil;
      const Curva &barrido;

   public:
      SuperficieBarrido(const Curva &perfil, const Curva &barrido);
      virtual ~SuperficieBarrido() {}

      /*
       * Precondicion:
       *    0 <= u <= 1
       *    0 <= v <= 1
       *
       * */
      virtual Coord eval(float u, float v) const { 
         return (*this)(u, v);
      }
      virtual Coord operator()(float u, float v) const;
      virtual Coord normal(float u, float v) const;

};

#endif
